package com.xbongbong.paas.pojo.workflow.task.vo;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.ext.FieldPermissionEntityExt;
import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.pojo.ApprovalLogPOJO;
import com.xbongbong.paas.pojo.vo.PaasProcessNodeTaskVO;
import com.xbongbong.paas.pojo.vo.ProcessTemplateNodeVO;
import com.xbongbong.paas.pojo.vo.SummaryDataVO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.pro.formdata.pojo.SaasSpecialParamPojo;
import com.xbongbong.sys.domain.entity.UserEntity;
import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Map;

/**
 * @author chenpeng
 * @version 1.0
 * @date 2021-05-25 13:45
 * @description
 */
@Setter
@Getter
public class WorkflowNodeTaskGetVO extends BaseVO {
    
    private static final long serialVersionUID = -4096501645023422175L;
    
    /**
     * 表单数据ID
     */
    private Long dataId;
    
    /**
     * 返回数据，除了子表单
     */
    private JSONObject data;
    
    /**
     * 流程状态
     */
    private Integer flowStatus;
    /**
     * 流程状态描述
     */
    private String flowStatusDesc;
    
    /**
     * 节点流程任务
     */
    private PaasProcessNodeTaskVO processNodeTask;
    
    /**
     * 摘要数据封装对象
     */
    private SummaryDataVO summary;
    
    /**
     * 标题
     */
    private String title;
    /**
     * 字段权限
     */
    private List<FieldPermissionEntityExt> fieldPermissionEntityList;
    
    /**
     * 字段列表
     */
    private List<FieldAttrEntity> headList;
    
    /**
     * 抄送人
     */
    private List<UserEntity> ccUserList;
    
    private UserVO commitUser;
    
    /**
     * 历史审批日志
     */
    private List<Object> historyLog;

    /**
     * 历史审批日志
     */
    private List<ApprovalLogPOJO> approvalHistoryLog;
    /**
     * 当前审批
     */
    private List<Object> currentLog;
    
    /**
     * 流水号
     */
    private String serialNo;
    
    private ProcessTemplateNodeVO processOperatePermission;
    
    /**
     * 表单名称
     */
    private String name;
    
    private Long timeConsuming;
    
    /**
     * 是否可以撤回 1： 可以撤回 0： 不能撤回
     */
    private Integer revoke;
    /**
     * 是否允许查看历史 1 允许，0不允许
     */
    private Integer allowViewLog;
    
    /**
     * 是否可以重新提交 1：可以重新提交 0：不可以重新提交
     */
    private Integer againCommit;
    
    private Integer delFlag;
    /**
     * 是否可打印
     */
    private Integer printFlag;
    /**
     * 是否签署
     */
    private Integer esignFlag;
    
    /**
     * 红冲发票用
     */
    private SaasSpecialParamPojo saasSpecialParamPojo;
    
    private List<String> unDealUserList;
    
    /**
     * 流程类型
     */
    private String processType;
    
    /**
     * 流程用时
     */
    private Long processTime;
    
    private String versionName;
    
    private Double writeOffAmount;

    /**
     * 用户部门容器
     */
    private Map<String, UserEntity> userMap;

    /**
     * 首页是否要日志
     */
    private Integer needRecords;

    /**
     * 首页是否要操作按钮
     */
    private Integer needOperate;

    /**
     * 是否能查看整个流程
     */
    private Integer allowViewWhole;
    /**
     *  0：字段不可见时，不参与公式计算 / 1：字段不可见时，始终参数计算
     *  默认为0
     */
    private Integer assignmentRules;

    /**
     * 当前审批是否为新建数据进审批  1:是  0:不是
     */
    private Integer isNew;

    public WorkflowNodeTaskGetVO(){
        revoke = 0;
        againCommit = 0;
        delFlag = 0;
        printFlag = 0;
    }

}
